package cn.e4j.modular.crm.service;

import cn.e4j.core.dto.impl.Dto;
import cn.e4j.modular.crm.entity.GwbwT;
import cn.e4j.modular.crm.entity.GwcsT;
import cn.e4j.modular.crm.entity.GwcszT;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author sxc
 * @since 2019-01-18
 */
public interface GwcsTService extends IService<GwcsT> {
    /**
     * 查询正式订单维护列表
     */
    List<Map<String, Object>> getList(Page<Object> page, Dto dto);

    /**
      * 查询正式订单号查询单身列表
      */
     List<Map<String, Object>> listGwcs(Dto dto);

    /**
     * 删除
     */
    void delete(GwcsT gwcsT);

    /*
    * 批量删除
    */
    void delDataBatch(List<GwcsT> gwcsTList);

    /**
     * 获得新增正式单号
     * @param dto
     * @return
     */
    public Dto getGwcsdocno(Dto dto);

    /**
      * 查询产品税种单价信息列表
      */
     List<Map<String, Object>> listGwam(Page<Object> page, Dto dto);

    /**
     * 查询税种开窗列表
     */
    List<Map<String, Object>> getGweaList(Page<Object> page, Dto dto);

    /*
    * 修改订单状态
    */
    void updateData(List<GwcsT> gwcsTList);

    /**
     * 根据单号查询
     */
    List<Dto> listGwcs032(Dto dto);

    /**
     * 获取折扣率
     * @param inDto
     * @return
     */
    Dto getGwcs035(Dto inDto);

    /**
     * 查询销售人员开窗列表
     */
    List<Map<String, Object>> getUserList(Page<Object> page, Dto dto);

    /**
     * 获取汇率
     * @param inDto
     * @return
     */
    Dto getGwcs034(Dto inDto);

    /**
     * 根据单号查询订单数据
     */
    List<Dto> listGwcsInfo(Dto dto);

    /**
     * 根据订单上的法人组织字段gwcsmlegal 从sys_org表找到ERP组织
     */
    Dto getDBinfo1(String ent,String gwcsmlegal);

    /**
     * 从ERP的数据库DSCSYS的表DSCMB中抓到MB003的值
     */
    Dto getDBinfo2(String biz_code_);

    /**
     * 判断订单是否已经抛过
     */
    Dto getUDF11(Dto dto);

    /**
     * 判断客户编号在ERP中是否存在
     */
    Dto selectByGwak001(Dto dto);

    /**
     * 获取登录者所在组织信息
     */
    Dto getSysOrg(String id);

    Dto getGwaz(String ent,String gwcsmlegal);

    /*
    * 新增
    */
    void addData(List<GwcsT> gwcsTList);

    /*
    * 修改
    */
    void editData(List<GwcsT> gwcsTList);

    void insertCOPTD(Dto dto);

    int insertCOPTC(Dto dto);

    void update(Dto dto);

    /**
     * 查询购物车开窗列表
     */
    List<Map<String, Object>> getGwcqList(Page<Object> page, Dto dto);

    Dto getCOPTC(Dto dto);

    /**
     * 更新GWCS表
     */
    void updateGwcs(GwcsT gwcsT);

    void updateCOPTC(Dto dto);

    /**
     * 查询活动信息列表
     */
    List<Map<String, Object>> listGwdc001(Page<Object> page, Dto dto);

    /**
     * 查询产品信息列表
     */
    List<Map<String, Object>> listGwda003(Page<Object> page, Dto dto);

    /**
     * 查询单价
     */
    List<Dto> getPrice(Dto dto);

    /**
     * 根据活动编号查询起订数量、起订金额
     * @param dto
     * @return
     */
    Dto getGwdc020_021(Dto dto);

    /**
     * 特价时阶梯定价
     * 根据活动编号查询起订数量、起订金额
     * @param dto
     * @return
     */
    Dto getGwdc020_021_jieti(Dto dto);

    /**
     * 根据活动编号删除赠品信息
     * @param dto
     * @return
     */
    void delGwcszByGwcsz007(Dto dto);

    /**
     * 获取当前经销商协议档数据
     * @param dto
     * @return
     */
    Dto getGwdd(Dto dto);

    List<Dto> getGiftInfoData(Dto dto);

    List<Dto> getGwdcOpenData(Page<Object> page,Dto dto);

    void addGwcszData(List<GwcszT> gwcszTList,Dto dto);

    List<Dto> getGwdczOpenData(Page<Object> page,Dto dto);

    Dto getGwcsz005_006(Dto dto);

    Dto getGwcs111(Dto dto);

    Dto checkGwcs117(Dto dto);

    String getMaxTc002(Dto str);

    List<Dto> getMaxSaleProduct(Dto dto);

    List<Dto> getOnSaleProduct(Dto dto);

    Dto getPriceSingel(Dto dto);

    void updateGWCS113(Dto dto);

    void add(List<GwcsT> gwcsTList, List<GwcszT> gwcszTList);

    List<Map<String, Object>> getGwcsdocnoData(Page<Object> page, Dto dto);

}
